home *** CD-ROM | disk | FTP | other *** search
/ User's Choice Windows CD / User's Choice Windows CD (CMS Software)(1993).iso / utility3 / jfklib.zip / MDI.HPP < prev    next >
C/C++ Source or Header  |  1991-05-11  |  4KB  |  143 lines

  1. /*
  2.     MDI.HPP - (C) 1990 by Joachim Kainz 'On a mission from Bhudda'
  3. */
  4.     #if !defined (__MDI_HPP)
  5.     #define __MDI_HPP 1
  6.  
  7.     #include "toplevel.hpp"
  8.  
  9.     #define JFK_MDI            (JFK_WINDOW+1 )
  10.     #define JFK_MDICHILD    (JFK_WINDOW+2 )
  11.  
  12.     // The following ID of the first child-window created.
  13.     // To avoid contacts all menu-IDs must be less than this value.
  14.  
  15.     #define ID_MDICHILD     ((WORD) 0xff00)
  16.  
  17.     #define WS_MDICLIENT (WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL)
  18.  
  19.     class MDICHILD : public WINDOW {
  20.  
  21.       protected:
  22.         virtual METHOD WMMove           (POINT pt   );
  23.         virtual METHOD WMClose         (           );
  24.         virtual METHOD WMGetMinMaxInfo (LPRECT lprt);
  25.  
  26.         virtual METHOD WMSetText (LPSTR lpText);
  27.  
  28.         virtual METHOD WMInitDialog    (DWORD dwParam                   ) DEFMETH
  29.         virtual    METHOD WMCommand    (WORD wID, WORD wMsg, HWND hCtl) DEFMETH
  30.         virtual METHOD WMSysCommand    (WORD wID, POINT pt               );
  31.         virtual METHOD WMTimer        (WORD wID, FARPROC               ) DEFMETH
  32.         virtual METHOD WMHScroll    (WORD wScrollCode, HWND hCtl   ) DEFMETH
  33.         virtual METHOD WMVScroll    (WORD wScrollCode, HWND hCtl   ) DEFMETH
  34.         virtual METHOD WMInitMenu    (HMENU hMenu                   ) DEFMETH
  35.  
  36.         virtual METHOD WMInitMenuPopUp (
  37.                         HMENU hPopUp,
  38.                         WORD  wIndex,
  39.                         BOOL
  40.                         bSystem
  41.                        ) DEFMETH
  42.  
  43.         virtual METHOD WMMenuSelect    (WORD wMenu, WORD wFlag               );
  44.         virtual METHOD WMMenuChar    (WORD wKey, HMENU hMenu, WORD wMenu);
  45.         virtual METHOD WMEnterIdle    (WORD wPrevious, HANDLE hPrevious  ) DEFMETH
  46.  
  47.         virtual METHOD WMParentNotify  (
  48.                         WORD wID,
  49.                         WORD wMsg,
  50.                         WORD wCtl
  51.                        ) DEFMETH
  52.  
  53.         virtual METHOD WMChildActivate (                                   );
  54.         virtual METHOD WMMDIActivate   (WORD wActive, HWND hOld, HWND hNew ) DEFMETH
  55.         virtual METHOD WMSetFocus       (HWND hLast                           );
  56.         virtual METHOD WMSize           (
  57.                         WORD wSizing,
  58.                         int  nWidth,
  59.                         int  nHeigth
  60.                        );
  61.  
  62.         virtual METHOD WndMdiProc (WORD wMsg, WORD wParam, long lParam);
  63.         virtual METHOD WndDlgProc (WORD wMsg, WORD wParam, long lParam);
  64.  
  65.       public:
  66.         EXPORT MDICHILD (
  67.                 LPSTR lpName,
  68.                 HICON hIcon        = LoadIcon (NULL, IDI_QUESTION),
  69.                 int      x            = 100,
  70.                 int      y            = 100,
  71.                 int      cx        = 250,
  72.                 int      cy        = 100,
  73.                 long  lStyle    = NULL,
  74.                 long  lParam    = NULL,
  75.                 LPSTR lpClass    = MAKEINTRESOURCE (JFK_MDICHILD)
  76.                );
  77.     };
  78.  
  79.     class MDI : public TOPLEVEL {
  80.  
  81.       protected:
  82.         static HWND hMDIClient;
  83.  
  84.         virtual METHOD WMQueryEndSession ();
  85.         virtual METHOD WMClose             ();
  86.         virtual METHOD WMDestroy         ();
  87.  
  88.         virtual METHOD WMCommand    (WORD wID,   WORD wMsg,   HWND hCtl    );
  89.         virtual METHOD WMSysCommand (WORD wID,      POINT pt                );
  90.         virtual METHOD WMMenuChar    (WORD wKey,  HMENU hMenu, WORD wMenu);
  91.         virtual METHOD WMMenuSelect (WORD wMenu, WORD  wFlag            );
  92.         virtual METHOD WMSetFocus    (HWND hLast                            );
  93.         virtual METHOD WMSize        (
  94.                         WORD wSizing,
  95.                         int  nWidth,
  96.                         int  nHeigth
  97.                        );
  98.  
  99.         static HWND EXPORT GetMDIClient () { return hMDIClient; }
  100.  
  101.         friend class MIDCHILD;
  102.  
  103.         HMENU EXPORT MDISetMenu (
  104.                         HMENU hNewAppMenu = NULL,
  105.                         HMENU hNewPopUp      = NULL
  106.                      );
  107.         HWND EXPORT GetNextChild   (HWND hChild = NULL);
  108.         long EXPORT SendAllChildren(
  109.                         WORD wMsg,
  110.                         WORD wParam           = NULL,
  111.                         long lParam           = NULL,
  112.                         BOOL bBreakOnFalse = FALSE
  113.                     );
  114.  
  115.       public:
  116.         EXPORT MDI (
  117.                 int         nCmdShow  = SW_NORMAL,
  118.                 int         x           = CW_USEDEFAULT,
  119.                 int         y           = CW_USEDEFAULT,
  120.                 int         cx           = CW_USEDEFAULT,
  121.                 int         cy           = CW_USEDEFAULT,
  122.                 long     lStyle       = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
  123.                 LPSTR    lpName       = MAKEINTRESOURCE (ID_APPNAME),
  124.                 LPSTR     lpMenu       = MAKEINTRESOURCE (ID_APPNAME),
  125.                 long     lExStyle  = NULL,
  126.                 WORD     wStyle       = CS_VREDRAW | CS_HREDRAW,
  127.                 HCURSOR     hCursor   = LoadCursor (NULL, IDC_ARROW),
  128.                 HICON     hIcon       = LoadIcon (
  129.                                         GetInstance (),
  130.                                         MAKEINTRESOURCE (ID_APPNAME)
  131.                                      ),
  132.                 HBRUSH     hBackGrnd = COLOR_APPWORKSPACE+1,
  133.                 WORD     wClsExtra = 0,
  134.                 WORD     wWndExtra = 0,
  135.                 LPSTR     lpParam   = NULL,
  136.                 LPSTR     lpClass   = MAKEINTRESOURCE (JFK_MDI),
  137.                 FARPROC2 lpFnProc  = DefWindowProc
  138.                );
  139.  
  140.     };
  141.  
  142.     #endif
  143.